package com.sudoctor.service;

import java.util.List;

import com.sudoctor.bean.BusquedaAvanzadaBean;
import com.sudoctor.bean.BusquedaGeolocalizacionBean;
import com.sudoctor.bean.BusquedaSencillaBean;
import com.sudoctor.entity.HorarioInmueble;
import com.sudoctor.entity.Inmueble;
import com.sudoctor.entity.Telefono;

public interface InmuebleService {
	
	public void guardar(Inmueble objeto);   
	public void actualizar(Inmueble objeto);  
	public void eliminar(String id);  
	public Inmueble obtenerInmueble(String id);
	
	
	/**
	 * Obtiene lista de inmuebles de una busqueda sencilla
	 * @param objBusquedaSencillaBean
	 * @param pagina
	 * @param resultadosPorPagina
	 * @return
	 */
	public List<Inmueble> obtenerListaInmuebles(BusquedaSencillaBean objBusquedaSencillaBean, int pagina, int resultadosPorPagina);
	
	/**
	 * Obtiene lista de inmeubles de una busqueda avanzada
	 * @param objBusquedaAvanzadaBean
	 * @return
	 */
	public List<Inmueble> obtenerListaInmuebles(BusquedaAvanzadaBean objBusquedaAvanzadaBean);

	/**
	 * Obtiene el total de registros segun criterios de busqueda sencilla.
	 * @param objBusquedaSencillaBean
	 * @return
	 */
	public int obtenerTotal(BusquedaSencillaBean objBusquedaSencillaBean);
	
	/**
	 * Detalle del horario
	 * @return
	 */
	public List<HorarioInmueble> detalleHorario(int inmuebleTipoInmuebleId);
	
	/**
	 * Detalle inmueble
	 * @return
	 */
	public Inmueble detalleInmueble(int inmuebleId,  int tipoInmuebleId);
	
	/**
	 * Detalle telefonos
	 * @return
	 */
	public List<Telefono> detalleTelefonos(int inmuebleTipoInmuebleId);
	
	/**
	 * Obtener lista de inmuebles por geolocalización.
	 * @param objBusquedaGeolocalizacion
	 * @param offset
	 * @param resultadosPorPagina
	 * @return
	 */
	public  List<Inmueble> obtenerListaGeolocalizacion(BusquedaGeolocalizacionBean objBusquedaGeolocalizacion,final int offset, int resultadosPorPagina);
	

	/**
	 * Obtiene el total de registros segun criterios de busqueda geolocalizacion.
	 * @param objBusquedaGeolocalizacionBean
	 * @return
	 */
	public int obtenerTotal(BusquedaGeolocalizacionBean objBusquedaGeolocalizacionBean);
	
}
